package cn.fudan.pms.domain.bo;

import lombok.Data;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 任务工单
 *
 * @author Jerry Zhang
 * create: 2022-12-26 21:17
 */
@Data
public class JobBO {
    private String uuid;            // uuid
    private String title;           // 任务标题
    private String description;     // 任务描述
    private String platform;        // 任务来源
    // 创建子工单 ——> 【派遣中】 ——> 工人实地确认 ——> 【检修中】 ——符合描述——> 【维修中】 ——> 【已完成】
    //    ↑                                        ↓
    // 关闭子工单 ———————————————————————————————— 不符合描述
    private String status;          // 任务状态。派遣中、检修中、维修中、已完成
    private Date issueTime;         // 发布时间
    private Date closeTime;         // 关闭时间
    private String residentUuid;    // 报修业主uuid
    private List<SubJobBO> subJobBOS;   // 子任务工单，至少包含一个子工单（即自身）

    public void addSubJob(SubJobBO subJobBO) {
        if (subJobBOS == null) {
            subJobBOS = new ArrayList<>();
        }
        subJobBOS.add(subJobBO);
    }

    public SubJobBO getSubJob(String subUuid) {
        for (SubJobBO subJobBO : subJobBOS) {
            if (subJobBO.getUuid().equals(subUuid)) {
                return subJobBO;
            }
        }
        return null;
    }
}
